#ifndef _DATA_PROCESS_H_
#define _DATA_PROCESS_H_

#include "main.h"

typedef enum {
    LANGUAGE_CN = 0,
    LANGUAGE_EN
}LANGUAGE_T;

typedef enum {
    FT_SMALL = 0,
    FT_MEDIUM,
    FT_LARGE
}FONT_T;

// 保存读取的系统配置信息 "./config/sys-conf.json"
typedef struct system_info
{
    char server_ip[50];
    int server_port;
    char mqtt_topic[50];
    lv_font_t *sysfont;
    FONT_T font;
    char version[60];
    LANGUAGE_T language;
    int exit_cnt;
    char rabbitmq_username[50]; // rabbitmq 用户名
    char rabbitmq_password[50]; // rabbitmq 密码
    char rabbitmq_fanout_exchangename[50]; // 广播地址
    char rabbitmq_simple_queuename[50];    // 队列
}SYSTEM_INFO;
extern SYSTEM_INFO system_info_;

// 保存读取的页面配置
typedef struct
{
    char ProjectName[50];
    char language_text[20];// 语言
    char Exit_cnt_text[20];// 出口个数
    char BtnClean[50];
    char BtnApply[50];
    char exitGradeText[50];
    char BoxedPercent[50];
    char BoxedCnt[50];
    char FruitingEfficiency[50];
    char SETTING[10];//设置
    char CHANGE_PRINT_MODE[30];//更换打印模板
    char SYSSETTING[20];//系统设置
    char NETWORKSETTING[20];// 网络设置
    char SYSINFO[20];//系统信息
    char SYSSTART[20];// 重启系统
    char CONNECT[20]; //wifi连接
    char DISCONNECT[20];// wifi断开连接
    char APPLY[10];// 应用
    char BACK[10];// 返回
}PAGE_INFO;

// 系统信息保存
extern SYSTEM_INFO *system_info;
extern PAGE_INFO   *page_info;
extern char ProjectName[50];
extern char language_text[20];// 语言
extern char Exit_cnt_text[20];// 出口个数
extern char Exit_printer_text[20];// 打印
extern char print_left_text[20];// 打印 左
extern char print_right_text[20];// 打印 右
extern char BtnClean[50];
extern char BtnApply[50];
extern char exitGradeText[50];
extern char BoxedPercent[50];
extern char BoxedCnt[50];
extern char FruitingEfficiency[50];
extern char SETTING[10];//设置
extern char CHANGE_PRINT_MODE[30];
extern char SYSSETTING[20];//系统设置
extern char NETWORKSETTING[20];// 网络设置
extern char SYSINFO[20];//系统信息
extern char SYSSTART[20];// 重启系统
extern char CONNECT[20]; //wifi连接
extern char DISCONNECT[20];// wifi断开连接
extern char APPLY[10];// 应用
extern char BACK[10];// 返回

// 存储出口信息
typedef struct
{
    char fruitname[50];
    char exit_grade[512];
    char exit_id[20];
    float boxed_percent;
    float box_cnt;
    float exit_percent;
}exit_INFO;
extern exit_INFO exit1;
extern exit_INFO exit2;

int exit_info_JSON(const char *jsonString) ;

void parse_ui_JSON(const char *jsonStr) ;

void parse_sysconf_JSON(const char *jsonStr) ;

char *get_system_local_ip_info(void);

int get_wifi_info(const char *file_path, char *ssid, char *password) ;

int set_server_info(const char *newServerIp, int newServerPort) ;
int set_language(const char *newLanguage) ;
int set_exit_cnt(int newCnt) ;
int set_link_mode(const char *newMode) ;

int set_wifi_info(const char *file_path, const char *new_ssid, const char *new_password) ;
#endif